//Author: Max Rupplin
//Date: 1/10/08
#define BINARY_ARRAY_SIZE 128
#define CSV_DATA_FILE "data.csv"
#define PROBLEM_DEFINITION_FILE "problem_definition.xml"


//CONVERTORS
char* ddas_verylong_to_binary_char(verylong* vl);

//FILE I/O
void ddas_read_problem_definition(char* infile);
//void ddas_write_results_to_file()

//GETTERS
int ddas_get_one_columns_count(verylong* decimal_value);
gsl_matrix* ddas_get_appropriate_independent_columns(verylong* iteration);

//MATRIX RELATED
void ddas_populate_current_matrix(gsl_matrix* current, int* decimal_value);
void ddas_populate_master_matrix();
void ddas_populate_independent_matrix();
void ddas_populate_dependent_vector();

//RESULT HANDLERS
gsl_vector* ddas_get_top_results(gsl_vector* chi_results);
gsl_vector* ddas_get_top_result_indices(gsl_vector* chi_results);

//WORKERS
void ddas_worker(gsl_matrix* dependent_vars, gsl_vector* coeffs, gsl_matrix* covariance, double *chi_squared);